package inseniarlingua.lang.ia;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

class VerbsIAFactoryTest
{
	VerbsIAFactory cut;

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
		cut = new VerbsIAFactory()
	}

	@After
	public void tearDown() throws Exception {
	}

	@Test
	public void testEsser() {
		VerbIA verb = cut.getVerb("esser")
		assertEquals("esser", verb.infinitive)
		assertEquals("essente", verb.presentParticiple)
		assertEquals("essite", verb.pastParticiple)
		assertEquals("es", verb.present)
		assertEquals("esseva", verb.past)
		assertEquals("essera", verb.future)
		assertEquals("ha essite", verb.perfect)
		assertEquals("habeva essite", verb.pluperfect)
		assertEquals("habera essite", verb.futurePerfect)
		assertEquals("esserea", verb.conditional)
		assertEquals("sia!", verb.imperative)
		/*
		 * Pluperfect	habeva essite	habeva habite	habeva vadite
Future perfect	habera essite	habera habite	habera vadite
Conditional	esserea; serea	haberea	vaderea
Imperative	sia!	habe!	vade!
		 */
	}
	
	@Test
	public void testVider() {
		VerbIA verb = cut.getVerb("vider")
		assertEquals("vider", verb.infinitive)
		assertEquals("vidente", verb.presentParticiple)
		assertEquals("vidite", verb.pastParticiple)
		assertEquals("vide", verb.present)
		assertEquals("videva", verb.past)
		assertEquals("videra", verb.future)
		assertEquals("ha vidite", verb.perfect)
		assertEquals("habeva vidite", verb.pluperfect)
		assertEquals("habera vidite", verb.futurePerfect)
		assertEquals("viderea", verb.conditional)
		assertEquals("vide!", verb.imperative)
		/*
		Sample verb: vider
Present participle	vidente
Past participle	vidite
Present	vide
Past	videva
Future	videra
Perfect	ha vidite
Pluperfect	habeva vidite
Future perfect	habera vidite
Conditional	viderea
Imperative	vide!

		 */
	}
	
	@Test
	public void testParlar() {
		VerbIA verb = cut.getVerb("parlar")
		assertEquals("parlar", verb.infinitive)
		assertEquals("parlante", verb.presentParticiple)
		assertEquals("parlate", verb.pastParticiple)
		assertEquals("parla", verb.present)
		assertEquals("parlava", verb.past)
		assertEquals("parlara", verb.future)
		assertEquals("ha parlate", verb.perfect)
		assertEquals("habeva parlate", verb.pluperfect)
		assertEquals("habera parlate", verb.futurePerfect)
		assertEquals("parlarea", verb.conditional)
		assertEquals("parla!", verb.imperative)
		/*
		Present participle	parlante
Past participle	parlate
Present	parla
Past	parlava
Future	parlara
Perfect	ha parlate
Pluperfect	habeva parlate
Future perfect	habera parlate
Conditional	parlarea
Imperative	parla!

		 */
	}
	
	@Test
	public void testAudir() {
		VerbIA verb = cut.getVerb("audir")
		assertEquals("audir", verb.infinitive)
		assertEquals("audiente", verb.presentParticiple)
		assertEquals("audite", verb.pastParticiple)
		assertEquals("audi", verb.present)
		assertEquals("audiva", verb.past)
		assertEquals("audira", verb.future)
		assertEquals("ha audite", verb.perfect)
		assertEquals("habeva audite", verb.pluperfect)
		assertEquals("habera audite", verb.futurePerfect)
		assertEquals("audirea", verb.conditional)
		assertEquals("audi!", verb.imperative)
		/*
		Sample verb: audir
Present participle	audiente
Past participle	audite
Present	audi
Past	audiva
Future	audira
Perfect	ha audite
Pluperfect	habeva audite
Future perfect	habera audite
Conditional	audirea
Imperative	audi!

		 */
	}

}
